package com.worthtech.billportal.service;


import java.util.List;

import org.hibernate.criterion.DetachedCriteria;

import com.worthtech.billportal.bean.BillInfoOracle;
import com.worthtech.billportal.bean.BillMaster;
import com.worthtech.billportal.bean.BillStatistic;
import com.worthtech.billportal.bean.CsHnOut;
import com.worthtech.billportal.bean.CsPosBin;
import com.worthtech.billportal.bean.CsPosCommercial;
import com.worthtech.billportal.bean.PepCardLimit;
import com.worthtech.billportal.bean.WtCommercial;
import com.worthtech.billportal.exception.SCException;
import com.worthtech.billportal.util.PaginationSupport;

public interface BillService {
	
	public BillMaster saveBill(BillMaster billInfo,BillInfoOracle billInfoOracle) throws SCException;
	
	public BillMaster updateBill(BillMaster billInfo) throws SCException;
	
	public PaginationSupport getBillList(DetachedCriteria detachedCriteria,int startIndex);
	
	public PaginationSupport getBillPayList(DetachedCriteria detachedCriteria,int startIndex);
	public void save(WtCommercial w);
	public void delete(WtCommercial w);
	public void update(WtCommercial w);
	public void save(PepCardLimit p);
	public void update(PepCardLimit p);
	public void delete(PepCardLimit p);
	
	public void save(CsPosBin p);
	public void update(CsPosBin p);
	public void delete(CsPosBin p);
	public void save(CsPosCommercial c);
	public void update(CsPosCommercial c);
	public void delete(CsPosCommercial c);
	public List getListByHQL(String queryString);
	public void save(CsHnOut c);
	public void delete(CsHnOut c );
	public List getListByCriteria(DetachedCriteria detachedCriteria);
	public List getListBySQL(String tableName, int startPage, int perNo,
			String orderby);
	public BillMaster getBillByBillNo(String billNo);
	
	public BillStatistic analyse(String organizationCode);
	
	public String getCount(String tableName, String condition);
	
	public List getListByHQL(String tableName, int startPage, int perNo,
			String orderby);
	
	public String getSum(String list,String tableName, String condition);
	
	public String getCountBySQL(String tableName, String condition) ;
	public String getbySql(String sql);
	public String getSumBySQL(String list,String tableName, String condition);

}
